package com.situ.mall.admin.interceptor;


import com.situ.mall.common.util.JwtUtil;
import com.situ.mall.common.util.ThreadLocalUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;

import java.util.Map;

public class LoginInterceptor implements HandlerInterceptor {
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		//得到令牌验证
		String token=request.getHeader("Authorization");
		try {
			//验证token
			Map<String,Object> map= JwtUtil.parseToken(token);
			
			ThreadLocalUtil.set(map);
			//放行
			return true;
		} catch (Exception e) {
			//http响应的状态码改为401
			response.setStatus(401);
			//不放行
			return false;
		}
	}
	
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
		ThreadLocalUtil.remove();
	}
}
